<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>TrabalhodeOrgII: Referência do Arquivo hash.h</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Gerado por Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">TrabalhodeOrgII&#160;<span id="projectnumber">1.0</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Página&#160;Principal</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Arquivos</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Lista&#160;de&#160;Arquivos</span></a></li>
      <li><a href="globals.html"><span>Arquivos&#160;Membros</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Componentes</a> &#124;
<a href="#define-members">Definições e Macros</a> &#124;
<a href="#func-members">Funções</a>  </div>
  <div class="headertitle">
<h1>Referência do Arquivo hash.h</h1>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br/>
</div>
<p><a href="hash_8h_source.html">Vá para o código-fonte deste arquivo.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Componentes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhash__t.html">hash_t</a></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Definições e Macros</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a32648b7b75bbea1bb4861d371ca8924a">TAMANHOVETOR</a>&#160;&#160;&#160;2617</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#adb17b03fe119278a184656012ad5abd4">CHECKMOD</a>&#160;&#160;&#160;2609</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Funções</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a22c2157b1ecae427632e60707fff6f95">hash_create</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">função para encapsular a criação da tabela de hash, feitar para fazer a interface entre o código não interno a tabela hash e o interno.  <a href="#a22c2157b1ecae427632e60707fff6f95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a4073889d36e8fb6d2b2fcdea9d890db9">hash_destroy</a> (<a class="el" href="structhash__t.html">hash_t</a> *hash)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">libera os recursos de memória alocados para a tabela  <a href="#a4073889d36e8fb6d2b2fcdea9d890db9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#aebd18d4b9cd8cc85bc69b13f878753f8">hash_reset</a> (<a class="el" href="structhash__t.html">hash_t</a> *hash)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">esvazia todo o conteúdo da tabela, deixando-a pronta para uso novamente.  <a href="#aebd18d4b9cd8cc85bc69b13f878753f8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#aafcf663db93bfbee48feff899f7a2f75">hash_stats</a> (<a class="el" href="structhash__t.html">hash_t</a> *hash)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">imprime na tela as estatísticas obtidas com as funções de hash atuais em uso.  <a href="#aafcf663db93bfbee48feff899f7a2f75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a04642261866116e1b8af8b16b4ceb280">hash_insert</a> (<a class="el" href="structhash__t.html">hash_t</a> *<a class="el" href="scanner_8c.html#a6483ebb78663736a00567f2f579ff7eb">table</a>, char *palavra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">método que faz a inserção de uma palavra na tabela hash  <a href="#a04642261866116e1b8af8b16b4ceb280"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a95b6dc4600df05ef3b88741f85ec1355">hash_find</a> (<a class="el" href="structhash__t.html">hash_t</a> *<a class="el" href="scanner_8c.html#a6483ebb78663736a00567f2f579ff7eb">table</a>, char *palavra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">procura ocorrências da palavra na tabela hash  <a href="#a95b6dc4600df05ef3b88741f85ec1355"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a2c36e4f3379af2151215d6f1ce5de703">hash1</a> (unsigned char *palavra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">função que retornará , dado uma palavra , um número que indica aonde ocorrerá a primeira tentativa de inserir uma palavra.  <a href="#a2c36e4f3379af2151215d6f1ce5de703"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#aab8b1c0599a908ed0dbfc10c5ef005bf">hash2</a> (unsigned char *palavra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">função que retornará , dado uma palavra , um número de incremento que será utilizado se a inserção não puder ocorrer na posição da tentativa de inserção anterior.  <a href="#aab8b1c0599a908ed0dbfc10c5ef005bf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a771cc5333cc9d3503504cd2bbef67ed7">hash3</a> (unsigned char *palavra)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">função que retornará , dado uma palavra , um número que será inserido na tabela hash.  <a href="#a771cc5333cc9d3503504cd2bbef67ed7"></a><br/></td></tr>
</table>
<hr/><h2>Definições e macros</h2>
<a class="anchor" id="adb17b03fe119278a184656012ad5abd4"></a><!-- doxytag: member="hash.h::CHECKMOD" ref="adb17b03fe119278a184656012ad5abd4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CHECKMOD&#160;&#160;&#160;2609</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>CHECKMOD utilizado para marcar espaços vagos na tabela, garante que não seram inseridos valores maiores que ele , pois o hash de inserção na tabela é mod CHECKMOD </p>

</div>
</div>
<a class="anchor" id="a32648b7b75bbea1bb4861d371ca8924a"></a><!-- doxytag: member="hash.h::TAMANHOVETOR" ref="a32648b7b75bbea1bb4861d371ca8924a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define TAMANHOVETOR&#160;&#160;&#160;2617</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>TAMANHOVETOR define o tamanho do vetor que vai de 0 a 2010 </p>

</div>
</div>
<hr/><h2>Funções</h2>
<a class="anchor" id="a2c36e4f3379af2151215d6f1ce5de703"></a><!-- doxytag: member="hash.h::hash1" ref="a2c36e4f3379af2151215d6f1ce5de703" args="(unsigned char *palavra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long hash1 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>palavra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>função que retornará , dado uma palavra , um número que indica aonde ocorrerá a primeira tentativa de inserir uma palavra. </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">palavra</td><td>que será utilizada para calcular o hash </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Retorna:</b></dt><dd>valor do hash propriamente dito </dd></dl>

</div>
</div>
<a class="anchor" id="aab8b1c0599a908ed0dbfc10c5ef005bf"></a><!-- doxytag: member="hash.h::hash2" ref="aab8b1c0599a908ed0dbfc10c5ef005bf" args="(unsigned char *palavra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int hash2 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>palavra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>função que retornará , dado uma palavra , um número de incremento que será utilizado se a inserção não puder ocorrer na posição da tentativa de inserção anterior. </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">palavra</td><td>que será utilizada para calcular o hash de incremento </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Retorna:</b></dt><dd>valor do hash de incremento propriamente dito </dd></dl>

</div>
</div>
<a class="anchor" id="a771cc5333cc9d3503504cd2bbef67ed7"></a><!-- doxytag: member="hash.h::hash3" ref="a771cc5333cc9d3503504cd2bbef67ed7" args="(unsigned char *palavra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long hash3 </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>palavra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>função que retornará , dado uma palavra , um número que será inserido na tabela hash. </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">palavra</td><td>que será utilizada para calcular o hash </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Retorna:</b></dt><dd>valor do hash propriamente dito </dd></dl>

</div>
</div>
<a class="anchor" id="a22c2157b1ecae427632e60707fff6f95"></a><!-- doxytag: member="hash.h::hash_create" ref="a22c2157b1ecae427632e60707fff6f95" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structhash__t.html">hash_t</a>* hash_create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>função para encapsular a criação da tabela de hash, feitar para fazer a interface entre o código não interno a tabela hash e o interno. </p>
<dl class="return"><dt><b>Retorna:</b></dt><dd>um ponteiro para a área de memória alocada para a estrutura da tabela hash </dd></dl>

</div>
</div>
<a class="anchor" id="a4073889d36e8fb6d2b2fcdea9d890db9"></a><!-- doxytag: member="hash.h::hash_destroy" ref="a4073889d36e8fb6d2b2fcdea9d890db9" args="(hash_t *hash)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void hash_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>libera os recursos de memória alocados para a tabela </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hash</td><td>tabela que será destruida </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a95b6dc4600df05ef3b88741f85ec1355"></a><!-- doxytag: member="hash.h::hash_find" ref="a95b6dc4600df05ef3b88741f85ec1355" args="(hash_t *table, char *palavra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int hash_find </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td>
          <td class="paramname"><em>table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>palavra</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>procura ocorrências da palavra na tabela hash </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">table</td><td>tabela aonde ocorrerá a busca </td></tr>
    <tr><td class="paramname">palavra</td><td>palavra que será buscada na tabela </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Retorna:</b></dt><dd>inteiro que terá 1 como valor se for encontrada a ocorrência e 0 se não for encontrada. </dd></dl>

</div>
</div>
<a class="anchor" id="a04642261866116e1b8af8b16b4ceb280"></a><!-- doxytag: member="hash.h::hash_insert" ref="a04642261866116e1b8af8b16b4ceb280" args="(hash_t *table, char *palavra)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void hash_insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td>
          <td class="paramname"><em>table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>palavra</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>método que faz a inserção de uma palavra na tabela hash </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">table</td><td>referência para a tabela que recebera a palavra </td></tr>
    <tr><td class="paramname">palavra</td><td>palavra que será inserida na tabela hash </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aebd18d4b9cd8cc85bc69b13f878753f8"></a><!-- doxytag: member="hash.h::hash_reset" ref="aebd18d4b9cd8cc85bc69b13f878753f8" args="(hash_t *hash)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void hash_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>esvazia todo o conteúdo da tabela, deixando-a pronta para uso novamente. </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">hash</td><td>tabela que será esvaziada. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aafcf663db93bfbee48feff899f7a2f75"></a><!-- doxytag: member="hash.h::hash_stats" ref="aafcf663db93bfbee48feff899f7a2f75" args="(hash_t *hash)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void hash_stats </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structhash__t.html">hash_t</a> *&#160;</td>
          <td class="paramname"><em>hash</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>imprime na tela as estatísticas obtidas com as funções de hash atuais em uso. </p>
<dl><dt><b>Parâmetros:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">table</td><td>tabela que reflete as estatísticas. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Gerado em Terça, 8 de Novembro de 2011 22:31:31 para TrabalhodeOrgII por&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address>
</body>
</html>
